#ifndef _M_ERRNO_H_
#define _M_ERRNO_H_

/**
 * MGroup 枚举值
 */
typedef enum MGroupTag
{
    kGroupCommon     = 0,  // 公共
    kGroupList       = 1,  // 列表
    kGroupDataCenter = 2,  // 数据中心
} MGroup;

#define MakeErrCode(group, code) (-((group << 16) | (code & 0xffff)))

/**
 * MErrCode 错误码枚举值
 */
typedef enum MErrCodeTag
{
/**公共错误码 */
    kErrCodeSucc =  0,  // 执行成功

    kErrCodeElse          = MakeErrCode(kGroupCommon, 1),  // 其他错误
    kErrCodeParamsErr     = MakeErrCode(kGroupCommon, 2),  // 参数错误
    kErrCodeMallocFail    = MakeErrCode(kGroupCommon, 3),  // 分配空间失败
    kErrCodeGetLockErr    = MakeErrCode(kGroupCommon, 4),  // 取锁错误
    kErrCodeNotCreate     = MakeErrCode(kGroupCommon, 5),  // 未创建
    kErrCodeItemNotExist  = MakeErrCode(kGroupCommon, 6),  // 成员不存在
    kErrCodeHandleInvalid = MakeErrCode(kGroupCommon, 7),  // 句柄无效
    kErrCodeOutOfSpace    = MakeErrCode(kGroupCommon, 8),  // 空间不足
} MErrCode;

#endif
